package com.ruoyi.laiwu.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 案件主业务对象 um_event_lwq
 *
 * @author ruoyi
 * @date 2024-01-24
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class UmEventLwqBo extends BaseEntity {

    /**
     * 主键id
     */
    @NotNull(message = "主键id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long id;

    /**
     * 立案时间
     */
    @NotNull(message = "立案时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date regTime;

    /**
     * 结案时间
     */
    @NotNull(message = "结案时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date closeTime;

    /**
     * 受理号
     */
    @NotNull(message = "受理号不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long acceptId;

    /**
     * 案件号
     */
    @NotBlank(message = "案件号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String caseCode;

    /**
     * 案件来源（取字典表）
     */
    @NotBlank(message = "案件来源（取字典表）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String caseSource;

    /**
     * 案件类别（选分级分类id）
     */
    @NotBlank(message = "案件类别（选分级分类id）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String caseClassId;

    /**
     * 问题类别名称
     */
    @NotBlank(message = "问题类别名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String caseClassName;

    /**
     * 立案标准ID（立案标准和结案标准拼接）
     */
    @NotNull(message = "立案标准ID（立案标准和结案标准拼接）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long standardId;

    /**
     * 立案标准
     */
    @NotBlank(message = "立案标准不能为空", groups = { AddGroup.class, EditGroup.class })
    private String regCaseStandard;

    /**
     * 结案标准
     */
    @NotBlank(message = "结案标准不能为空", groups = { AddGroup.class, EditGroup.class })
    private String closeCaseStandard;

    /**
     * 处理时限
     */
    @NotNull(message = "处理时限不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal processLimit;

    /**
     * 时限类型（0：小时 1：工作日）
     */
    @NotBlank(message = "时限类型（0：小时 1：工作日）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String limitType;

    /**
     * 核实时限（默认单位小时 默认值0）
     */
    @NotNull(message = "核实时限（默认单位小时 默认值0）不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal verifyLimit;

    /**
     * 核查时限（默认单位小时 默认值0）
     */
    @NotNull(message = "核查时限（默认单位小时 默认值0）不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal inspectLimit;

    /**
     * 案件标题
     */
    @NotBlank(message = "案件标题不能为空", groups = { AddGroup.class, EditGroup.class })
    private String caseTitle;

    /**
     * 事发位置
     */
    @NotBlank(message = "事发位置不能为空", groups = { AddGroup.class, EditGroup.class })
    private String position;

    /**
     * 案件描述
     */
    @NotBlank(message = "案件描述不能为空", groups = { AddGroup.class, EditGroup.class })
    private String questionDesc;

    /**
     * 所属区域
     */
    @NotBlank(message = "所属区域不能为空", groups = { AddGroup.class, EditGroup.class })
    private String areaCode;

    /**
     * 所属区域名称
     */
    @NotBlank(message = "所属区域名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String areaName;

    /**
     * 所在区域
     */
    @NotNull(message = "所在区域不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long districtId;

    /**
     * 所在街道
     */
    @NotNull(message = "所在街道不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long streetId;

    /**
     * GEO X轴坐标
     */
    @NotNull(message = "GEO X轴坐标不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal geoX;

    /**
     * GEO Y轴坐标
     */
    @NotNull(message = "GEO Y轴坐标不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal geoY;

    /**
     * 举报人
     */
    @NotBlank(message = "举报人不能为空", groups = { AddGroup.class, EditGroup.class })
    private String reporter;

    /**
     * 是否需要回复
     */
    @NotBlank(message = "是否需要回复不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isReceipt;

    /**
     * 回复方式
     */
    @NotBlank(message = "回复方式不能为空", groups = { AddGroup.class, EditGroup.class })
    private String replayWay;

    /**
     * 回复号码或者邮件等
     */
    @NotBlank(message = "回复号码或者邮件等不能为空", groups = { AddGroup.class, EditGroup.class })
    private String replyWay;

    /**
     * 来电号码
     */
    @NotBlank(message = "来电号码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String telNum;

    /**
     * 上报时间
     */
    @NotNull(message = "上报时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date reportTime;

    /**
     * 案件状态，默认是'0'(-1作废,0 未结案,1 已结案 2已立案  -5结束，不予结案)
     */
    @NotBlank(message = "案件状态，默认是'0'(-1作废,0 未结案,1 已结案 2已立案  -5结束，不予结案)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String caseStatus;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;

    /**
     * 关键字
     */
    @NotBlank(message = "关键字不能为空", groups = { AddGroup.class, EditGroup.class })
    private String keyWord;

    /**
     * 案件等级(0：一般；1：重要；2：重大)
     */
    @NotBlank(message = "案件等级(0：一般；1：重要；2：重大)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String caseLevel;

    /**
     * 最后一次处置单位ID
     */
    @NotNull(message = "最后一次处置单位ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long lastProdeptId;

    /**
     * 最后一次处置单位意见
     */
    @NotBlank(message = "最后一次处置单位意见不能为空", groups = { AddGroup.class, EditGroup.class })
    private String lastProdeptOpinion;

    /**
     * 处置核查状态（0未读 1已读 2处置中 3核查通过 4核查不通过   默认 0）
     */
    @NotBlank(message = "处置核查状态（0未读 1已读 2处置中 3核查通过 4核查不通过   默认 0）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String prodeptStatus;

    /**
     * 案件结束时间
     */
    @NotNull(message = "案件结束时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date endTime;

    /**
     * 受理对象(是否市级立案)：2、市级，3、区级，4、街镇
     */
    @NotBlank(message = "受理对象(是否市级立案)：2、市级，3、区级，4、街镇不能为空", groups = { AddGroup.class, EditGroup.class })
    private String reciveObject;

    /**
     * 数据状态（0：删除  ； 1 正常）默认1
     */
    @NotBlank(message = "数据状态（0：删除  ； 1 正常）默认1不能为空", groups = { AddGroup.class, EditGroup.class })
    private String dbStatus;

    /**
     * 创建用户id
     */
    @NotNull(message = "创建用户id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long createId;

    /**
     * 是否必须上传附件（0否 1 是）
     */
    @NotBlank(message = "是否必须上传附件（0否 1 是）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isAttach;

    /**
     * 道路名称
     */
    @NotBlank(message = "道路名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String roadName;

    /**
     * 案件是否合格（0 否，1 是）
     */
    @NotBlank(message = "案件是否合格（0 否，1 是）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isEnable;

    /**
     * 是否为区转市（0 否，1 是）
     */
    @NotBlank(message = "是否为区转市（0 否，1 是）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isDistrictTransfer;

    /**
     * 是否为市派遣（0 否，1 是）
     */
    @NotBlank(message = "是否为市派遣（0 否，1 是）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isCitySend;

    /**
     * 作废原因
     */
    @NotBlank(message = "作废原因不能为空", groups = { AddGroup.class, EditGroup.class })
    private String invalidReason;

    /**
     * 回退原因
     */
    @NotBlank(message = "回退原因不能为空", groups = { AddGroup.class, EditGroup.class })
    private String backReason;


}
